在JavaScript中,兩個 "&"代表 and的意思,and代表所有條件都成立才是 true, 否則為 false
const con1 = true
const con2 = true
const con3 = false
console.log(con1 && con2) // true
console.log(con1 && con2 && con3) // false
在JavaScript中,兩個"|"符號代表 or的意思,or代表只要有一個值為 true,即為 true
const con1 = true
const con2 = true
const con3 = false
console.log(con1 || con2) // true
console.log(con1 || con2 || con3) // true
單一 if:條件成立執行大括弧內的程式,不成立則直接跳過
const dog = {
isAnimal: true
}
if (dog.isAnimal) {
console.log('dog is animal')
}
如果 if的條件不成立,則執行 else內的程式
const person = {
name: 'Ellen',
gender: 'girl'
}
if (person.gender === 'girl') {
console.log('I am a girl')
} else {
console.log('I am a man')
}
如果 if條件不成立,則看看 else if成不成立,如果都不成立,就執行 else內的程式
這是一個範例:
const con1 = true
const con2 = false
if (con1 && con2) {
console.log('con1 and con2 both are true')
} else if (con1 || con2) {
console.log('both or one of con1 or con2 is true')
} else if (con2) {
console.log('con2 is true')
} else {
console.log('con1 is false')
}
Tip:else if 可以多個同時存在。
else if 平時較少使用,同樣的範例實務上有更好讀的寫法:
const con1 = true
const con2 = false
if (con1 && con2) {
console.log('con1 and con2 both are true')
}
if(con1 || con2) {
console.log('both or one of con1 or con2 is true')
}
if (con1) {
console.log('con1 is true')
}
if(con2) {
console.log('con2 is true')
}
switch,語意上是選擇的意思,但實際使用時如果沒有適當的使用 break,可能會造成bug。
const name = 'Peter'
switch (name) {
case 'Peter':
console.log('I am Peter')
case 'Jenny':
console.log('I am Jenny')
case 'peter':
console.log('I am peter')
}
這個範例有幾個問題,當 name符合case條件時會執行該片段程式,但因為沒有使用 break因此即便執行完了第一個case內的程式,還是會繼續往下執行,並不會停止。另外,如果所有條件都不成立,就不會執行任何動作。
我們將這個範例改良一下:
const name = 'Peter'
switch (name) {
case 'Peter':
console.log('I am Peter')
break
case 'Jenny':
console.log('I am Jenny')
break
case 'peter':
console.log('I am peter')
break
default:
console.log('default option')
}
現在我們有了 break,程式會在完成第一個符合條件的case後被停止。
且 default會在所有條件都不成立時被執行。
所有的 switch都該這麼寫,除非你知道自己在幹嘛,但即便如此,若有這樣的需求存在,通常都會有更好的做法。